贝叶斯动态线性模型中的 linear growth model,本要编了一个小程序,想实现一下,结果出错了,如下,那位高手帮我解答一下吧!
model{
for (t in 2:n){
y[t]~dnorm(mean.y[t],v)
mean.y[t]<-mean.mu[t]
mu[t]~dnorm(mean.mu[t],w1)
mean.mu[t]<-mean.mu[t-1]+mean.beta[t-1]
beta[t]~dnorm(mean.beta[t],w2)
mean.beta[t]<-mean.beta[t-1]
}
v~dnorm(mu0,tau0)
w1~dnorm(mu0,tau0)
w2~dnorm(mu0,tau0)
mu0~dnorm(0,1.0E-6)
tau0~dgamma(0.001,0.0001)
for (j in 2:m){
pred.y[j]~dnorm(pred.mean.y[j],v)
pred.mean.y[j]<-pred.mean.mu[j]
pred.mu[j]~dnorm(pred.mean.mu[j],w1)
pred.mean.mu[j]<-pred.mean.mu[j-1]+pred.mean.beta[j-1]
pred.beta[j]~dnorm(pred.mean.beta[j-1],w2)
pred.mean.beta[j]<-pred.mean.beta[j-1]}
}
#data
list(n=35,y=c(0.00,-0.70,-1.85,-3.00,-4.60,-5.55,-6.55,-13.90,-16.90,-19.25,
-21.60,-23.30,-24.85,-28.80,-33.35,-35.40,-37.10,-36.90,-36.80,-37.40,-37.70,-37.60,-37.60,-38.40,-38.50,
-38.00,-38.45,-39.05,-39.65,-40.70,-40.45,-40.65,-40.85,-40.70,-40.75),m=40,pred.mean.beta=c(1))
#inite
list(mu=1,mean.beta=1,v=0.1,w1=0.1,w2=0.1,pred.y=c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA
,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA) |